import re

str = """
    张伟 86-14870293148  \n
   王伟   +86-13285654569    \n
    王芳        15856529115    \n
 李伟         13022816340  \n
  王秀英   (86)14785720656     \n
   李秀英    17201444672    \n
    李娜         15682812452     \n
    张秀英         14326967740     \n
    刘伟  15146435743    \n
   张敏        (86)-17712576838   \n
    李静       86 14295083635  \n
    张丽     (+86) 13722348123   \n
   王静         17587918887   \n
  王丽    15493106739    \n
 李强      13786842977   \n
 张静         86-15542304386     \n
    李敏        15642387356 \n
   王敏          18627216756  \n
 王磊       17206185726   \n
    李军      17857426238     \n
   刘洋        17345352790     \n
"""

a = re.findall(r'[\d]{11}',str)
b = re.findall(r'1[8|3][\d]{9}',str)
c = re.findall(r'王\S*',str)

d = re.findall(r'(张\S*)\s+\(?(\+?86?)?\)?[ .-]?([\d]{11})',str)

e = re.sub(r'\s+(\w\S+)\s+\(?(\+?86?)?\)?[ .-]?([\d]{11})',r'\1  \3\n',str)

print(a)
print(b)
print(c)
for line in d:
    print(line[0] + "的电话号码是：" + line[2])

print(e)


"""
    ['14870293148', '13285654569', '15856529115', '13022816340', '14785720656', '17201444672', '15682812452', '14326967740', '15146435743', '17712576838', '14295083635', '13722348123', '17587918887', '15493106739', '13786842977', '15542304386', '15642387356', '18627216756', '17206185726', '17857426238', '17345352790']
    ['13285654569', '13022816340', '13722348123', '13786842977', '18627216756']
    ['王伟', '王芳', '王秀英', '王静', '王丽', '王敏', '王磊']
    张伟的电话号码是：14870293148
    张秀英的电话号码是：14326967740
    张敏的电话号码是：17712576838
    张丽的电话号码是：13722348123
    张静的电话号码是：15542304386
    张伟  14870293148
    王伟  13285654569
    王芳  15856529115
    李伟  13022816340
    王秀英  14785720656
    李秀英  17201444672
    李娜  15682812452
    张秀英  14326967740
    刘伟  15146435743
    张敏  17712576838
    李静  14295083635
    张丽  13722348123
    王静  17587918887
    王丽  15493106739
    李强  13786842977
    张静  15542304386
    李敏  15642387356
    王敏  18627216756
    王磊  17206185726
    李军  17857426238
    刘洋  17345352790
"""


         
    
    




#第二题
# 提取所有日期
# 提取所有 1996 年以前出生的学生
# 重新排版
# 把所有 1996 年以前出生的学生出生年份改为 1996
# 提取生日 格式：张伟的生日是11月15号

str = """
  张伟         1996.8.24 
   王伟      1993年10月21日   
 王芳         1997-7-24   
   李伟       1996.3.21  
   王秀英        1991.12.0  
   李秀英     1994-7-5    
   李娜       1999.1.28   
   张秀英        1998-2-24   刘伟     1996.5.28      张敏      1996.10.26   
  李静      1993年1月6日    
   张丽        1992.5.21     王静  1998-5-1  
    王丽   1994-4-14  
   李强  1993.8.13   
   张静          1998年1月5日   李敏    1993-8-21  
   王敏      1997-3-7    
   王磊     1999-3-18    
  李军         1990-12-18  
    刘洋   1995年5月7日  
"""
a = re.findall(r'\d{4}[年.-]?\d{1,2}[月.-]?\d{1,2}\S?',str)  # 提取所有日期
b = re.findall(r'\S+\s+1\d{2}[0-5][年.-]?\d{1,2}[月.-]?\d{1,2}\S?',str)  # 提取所有 1996 年以前出生的学生
c = re.sub(r'\s*(\S+)\s+(\d{4})[年.-]?(\d{1,2})[月.-]?(\d{1,2})\S?',r'\1  \2 年 \3 月 \4 日 \n',str)   #重新排版
d = re.findall(r'(\S+)\s+(1\d{2}[0-6])\S?(\d{1,2})\S?(\d{1,2})\S?',str)
e = re.findall(r'(\S+)\s+\d{4}[年.-]?(\d{1,2})\S?(\d{1,2})\S?',str)


print(a)  
print("\n")
print(b)
print("\n")
print(c)
for line in d:
    print(line[0] + "  " + "1996" + "年" + line[2] + "月" + line[3] + "日" )

print(e)